package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

// User 定义一个用户结构体，用于接收请求数据
type User struct {
	Name  string `json:"name" form:"name"`
	Age   int    `json:"age" form:"age"`
	Email string `json:"email" form:"email"`
}

func main() {
	// 创建一个默认的Gin引擎
	r := gin.Default()

	// 定义一个POST请求的路由处理函数
	r.POST("/user", func(c *gin.Context) {
		// 创建一个User结构体的实例
		var user User
		// 使用ShouldBind方法将请求数据绑定到user结构体上
		if err := c.ShouldBind(&user); err != nil {
			// 如果绑定过程中出现错误，返回错误信息
			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		// 若绑定成功，返回用户信息
		c.JSON(http.StatusOK, gin.H{
			"message": "User information received successfully",
			"user":    user,
		})
	})

	// 启动服务器，监听8080端口
	r.Run(":8080")
}
